package cn.com.huzo.service.purchase;

import cn.com.huzo.model.entities.purchase.NotesPayabledLinesPoStockInEntity;
import huzofw.service.GenericManager;
import java.util.List;
import java.util.Map;

/**
 * 对账单-明细（到货情况）管理服务对象接口。
 *
 * @author 吴旭
 */
public interface NotesPayabledLinesPoStockInManager extends GenericManager<NotesPayabledLinesPoStockInEntity, String> {

    /**
     * 根据给定的条件，得到对账用到货明细信息
     *
     * @param criterion 条件
     * @return 对账用到货明细信息
     * @throws java.lang.Exception
     */
    List<NotesPayabledLinesPoStockInEntity> fetchByHeaderKey(Map<String, Object> criterion) throws Exception;

    /**
     * 提取对账用到货记录（向导）
     *
     * @param criterion
     * @return
     * @throws Exception
     */
    Map<String, Object> fetchAccountPayableForPage(Map<String, Object> criterion) throws Exception;

    /**
     * 强制到货对账
     *
     * @param criterion 强制到货对账的入库数据
     * @return
     * @throws Exception
     */
    Map<String, Object> add(Map<String, Object> criterion) throws Exception;

    /**
     * 批量删除到货对账明细
     *
     * @param headerId 对账单ID
     * @param deletedBy 删除者
     * @param limit02 对账明细每页显示数据数量
     * @param orderBy 排序
     * @param itemList 要删除的到货对账明细
     * @return 删除后的明细
     * @throws Exception
     */
    Map<String, Object> batchDeleteLines(Long headerId, Long deletedBy, Integer limit02, String orderBy,
            List<NotesPayabledLinesPoStockInEntity> itemList) throws Exception;

}
